SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TMDOCU_PROV_Q34]  
/*-------------------------------------------------------*/  
/*---Empresa              : OFISIS S.A.                --*/  
/*---Sistema              : Tesoreria                  --*/  
/*---M®dulo               : Empresa                    --*/  
/*---Programa             : Pagos Proveedores          --*/  
/*---Script               :                            --*/  
/*---Nombre SP            : SP_TMDOCU_PROV_Q34         --*/  
/*---Desarrollado por     : Reynaldo Menacho Luyo      --*/  
/*---Fecha Creaci®n       : 03/04/2002                 --*/  
/*---Base Datos           : Microsoft Sql Server       --*/  
/*---Versi®n              : 7.0                        --*/  
/*---Invoca a SP          :                            --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Modificado 1 por     :          --*/  
/*---Fecha Modificaci®n   :          --*/   
/*---Detalle Modificaci®n :          --*/  
/*---                --*/  
/*-------------------------------------------------------*/  
/*-------------------------------------------------------*/  
/*---Drop Proc SP_TMDOCU_PROV_Q34                      --*/  
/*---Grant Execute on SP_TMDOCU_PROV_Q34 to public         --*/   
/*--- SP_TMDOCU_PROV_Q34 " And TMDOCP_GENE.CO_EMPR in ( '01') And  TCMOVI_BANC.FE_OPER >=  
convert(datetime,'01/01/2007',103) And  TCMOVI_BANC.FE_OPER <=  convert(datetime ,'31/01/2007',103)  ", "",   
 'A', '1', 'P', 'SOL', 'N', 0 */  
/*-------------------------------------------------------*/  
@ISCA_WHER_0001 VARCHAR(255),  
@ISCA_WHER_0002 VARCHAR(255),  
@ISST_TIPO_PAGO TD_VC_001,  
@ISTI_ORDE TD_VC_001,  
@ISTI_AUXI_PROV TD_VC_001,  
@ISCO_MONE_DEST TD_VC_003,  
@ISST_USUA      TD_VC_001,  
@INFA_USUA      TD_NU_009_004  
 As  
Create Table #TWPAGO_PROV  
( CO_EMPR CHAR(02) NULL,  
CO_MONE  VARCHAR(03) NULL,  
CO_PROV VARCHAR(20) NULL,  
CO_TIPO_DOCU VARCHAR(03) NULL,  
NU_DOCU_PROV VARCHAR(20) NULL,  
CO_TIPO_OPER VARCHAR(03) NULL,  
IM_TOTA  NUMERIC(16,4),  
IM_PAGA  NUMERIC(16,4),  
CO_CABA VARCHAR(10) NULL,  
NU_CNTA_BANC VARCHAR(20) NULL,  
IM_CONV_DOCU NUMERIC(16,4),  
CO_MONE_OPER VARCHAR(03) NULL,  
FA_TIPO_CAMB NUMERIC(16,4),  
TI_DOCU_CABA VARCHAR(03) NULL,  
NU_DOCU_CABA VARCHAR(20) NULL,  
FE_EMIS  DATETIME,  
FE_VENC DATETIME,  
FE_OPER DATETIME,  
NU_COMP_CABA VARCHAR(20) NULL,  
IM_MOVI  NUMERIC(16,4) NULL,  
IM_SALD_CONV NUMERIC(16,4) NULL,  
IM_CONV NUMERIC(16,4) NULL)  
  
DECLARE  
@CSCO_EMPR      TD_VC_002,  
@CSCO_CABA      TD_VC_020,  
@CSNU_CNTA_BANC TD_VC_020,  
@CSCO_MONE      TD_VC_003,  
@CSCO_PROV      TD_VC_020,   
@CSCO_TIPO_DOCU TD_VC_003,  
@CSNU_DOCU_PROV TD_VC_020,  
@CSNU_COMP_CABA TD_VC_020,  
@CNIM_CONV_DOCU TD_NU_016_004,  
@CSCO_MONE_OPER TD_VC_003,  
@CNFA_TIPO_CAMB TD_NU_009_004,  
@CDFE_OPER      TD_DT_001,  
@CNIM_MOVI      TD_NU_016_004,  
@VNFE_0001      TD_IN_001,   
@VNIM_SALD_CONV TD_NU_016_004,  
@VNIM_CONV      TD_NU_016_004,  
@VSTI_CAMB      TD_VC_002,  
@VSTI_ORIG      TD_VC_002,  
@ISDE_WHER_CABA TD_VC_200,  
@VSFE_INIC TD_VC_020,  
@VSFE_FINA TD_VC_020,  
@VSCA_WHER VARCHAR(600),  
@VSDE_CONV_0001 VARCHAR(200),  
@VSDE_CONV_0002 VARCHAR(200),  
@VSFA_USUA TD_VC_010,  
  
@OSTI_DOCU_LETR TD_VC_003,  
@OSTI_DOCU_CHEQ TD_VC_003   
  
  /* Devuelve el Tipo Documento CHEQUE */      
  Exec SP_TTDOCU_CNTB_Q01 29, @OSTI_DOCU_CHEQ Output   
  
  
  SELECT @VSCA_WHER = REPLACE(@ISCA_WHER_0001+@ISCA_WHER_0002, 'TCMOVI_BANC', 'T7')  

  SELECT @ISDE_WHER_CABA = ' '  
  
  IF @ISST_TIPO_PAGO = 'T'  
 SELECT @ISDE_WHER_CABA = @ISDE_WHER_CABA + ' AND ROUND(TMDOCP_GENE.IM_TOTA, 2) = ROUND(T2.IM_DETA,2) '  
  IF @ISST_TIPO_PAGO = 'P'  
 SELECT @ISDE_WHER_CABA = @ISDE_WHER_CABA + ' AND ROUND(TMDOCP_GENE.IM_TOTA, 2)  > ROUND(T2.IM_DETA,2) '  
  
  SELECT @VSFA_USUA = CONVERT(VARCHAR(10), @INFA_USUA)  

  IF @ISST_USUA = 'N'  
 SELECT  @VSDE_CONV_0001 = "(SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T4.CO_MONE, '"+@ISCO_MONE_DEST+"', T7.FE_OPER,   
   T2.IM_SALD_CONV, T8.TI_CAMB, T8.TI_ORIG, 'S', T8.CO_MONE_DEFA, T8.CO_MONE_EXTR, T7.FA_TIPO_CAMB))," ,  
  @VSDE_CONV_0002 = "(SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T4.CO_MONE, '"+@ISCO_MONE_DEST+"', T7.FE_OPER,   
   T2.IM_DETA_NEGA, T8.TI_CAMB, T8.TI_ORIG, 'S', T8.CO_MONE_DEFA, T8.CO_MONE_EXTR, T7.FA_TIPO_CAMB))"   
  ELSE  
 SELECT  @VSDE_CONV_0001 = "(SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T4.CO_MONE, '"+@ISCO_MONE_DEST+"', T7.FE_OPER,   
   T2.IM_SALD_CONV, T8.TI_CAMB, T8.TI_ORIG, 'S', T8.CO_MONE_DEFA, T8.CO_MONE_EXTR, "+@VSFA_USUA+"))," ,  
  @VSDE_CONV_0002 = "(SELECT OFITESO.dbo.FN_TCFACT_CAMB_Q02(T4.CO_MONE, '"+@ISCO_MONE_DEST+"', T7.FE_OPER,   
   T2.IM_DETA_NEGA, T8.TI_CAMB, T8.TI_ORIG, 'S', T8.CO_MONE_DEFA, T8.CO_MONE_EXTR, "+@VSFA_USUA+"))"   
  
  EXECUTE("  
  Insert Into #TWPAGO_PROV (CO_EMPR, CO_MONE, CO_PROV, CO_TIPO_DOCU, NU_DOCU_PROV,  
  CO_TIPO_OPER, IM_TOTA, IM_PAGA, CO_CABA, NU_CNTA_BANC, IM_CONV_DOCU,  
  CO_MONE_OPER, FA_TIPO_CAMB, TI_DOCU_CABA, NU_DOCU_CABA, FE_EMIS, FE_VENC, FE_OPER,  
  NU_COMP_CABA, IM_MOVI, IM_SALD_CONV, IM_CONV)  
  Select  TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_MONE, TMDOCP_GENE.CO_PROV, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV,  
 TMDOCP_GENE.CO_TIPO_OPER, TMDOCP_GENE.IM_TOTA, TMDOCP_GENE.IM_PAGA, T2.CO_BANC, T2.NU_CNTA_BANC,  
 T2.IM_SALD_CONV, T4.CO_MONE, T7.FA_TIPO_CAMB, Isnull(T7.CO_TIPO_DOCU, '" +  @OSTI_DOCU_CHEQ + "'), Isnull(T7.NU_CHEQ, 
T7.NU_DOCU_BANC),   
 TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC, T7.FE_OPER, T7.NU_COMP_BANC, T2.IM_DETA_NEGA, " + @VSDE_CONV_0001 + 
@VSDE_CONV_0002 + "  
    From  TMDOCP_GENE  , TDMOVI_BANC T2, TMCNTA_BANC T4, TCMOVI_BANC T7, TMPARA_TESO T8  
  Where 1 = 1 " +  @VSCA_WHER +"  
  And TMDOCP_GENE.IM_PAGA > 0  
  And   T7.TI_SITU NOT IN  ('ANU', 'EXT')
  And   TMDOCP_GENE.CO_ESTA_DOCU != 'ANU'   
  And TMDOCP_GENE.CO_EMPR = T2.CO_EMPR  
  And T2.TI_ENTI = '" + @ISTI_AUXI_PROV + "'  
  And TMDOCP_GENE.CO_PROV = T2.CO_ENTI  
  And TMDOCP_GENE.CO_TIPO_DOCU = T2.TI_DOCU_ENTI  
  And TMDOCP_GENE.NU_DOCU_PROV = T2.NU_DOCU_ENTI "   
  + @ISDE_WHER_CABA + "  
  And T4.CO_EMPR  = T2.CO_EMPR  
  And T4.CO_BANC  = T2.CO_BANC  
  And T4.NU_CNTA_BANC = T2.NU_CNTA_BANC  
  And T2.CO_EMPR  = T7.CO_EMPR  
  And T2.CO_UNID_CONC  = T7.CO_UNID_CONC
  And T2.CO_BANC  = T7.CO_BANC  
  And T2.NU_CNTA_BANC = T7.NU_CNTA_BANC  
  And T2.AA_BNCO  = T7.AA_BNCO  
  And T2.MM_BNCO  = T7.MM_BNCO  
  And T2.TI_MOVI_BANC = T7.TI_MOVI_BANC  
  And T2.NU_COMP_BANC = T7.NU_COMP_BANC  
  And TMDOCP_GENE.CO_EMPR = T8.CO_EMPR  
  Union All  
  Select  TMDOCP_GENE.CO_EMPR, TMDOCP_GENE.CO_MONE, TMDOCP_GENE.CO_PROV, TMDOCP_GENE.CO_TIPO_DOCU, TMDOCP_GENE.NU_DOCU_PROV,  
  TMDOCP_GENE.CO_TIPO_OPER, TMDOCP_GENE.IM_TOTA, TMDOCP_GENE.IM_PAGA, T2.CO_CAJA, T2.NU_COMP_CAJA,  
 T2.IM_SALD_CONV, T4.CO_MONE, T7.FA_TIPO_CAMB, CONVERT(VARCHAR(3),''), CONVERT(VARCHAR(15),''),    
 TMDOCP_GENE.FE_EMIS, TMDOCP_GENE.FE_VENC, T7.FE_OPER, T2.NU_COMP_CAJA, T2.IM_DETA_NEGA, " + @VSDE_CONV_0001 + 
@VSDE_CONV_0002 + "  
  From  TMDOCP_GENE , TDMOVI_CAJA T2, TMCAJA T4, TCMOVI_CAJA T7, TMPARA_TESO T8  
  Where 1 = 1 " +  @VSCA_WHER + "  
  And  TMDOCP_GENE.IM_PAGA > 0  
  And   T7.TI_SITU NOT IN  ('ANU', 'EXT')
  And   TMDOCP_GENE.CO_ESTA_DOCU != 'ANU'   
  And T2.CO_EMPR = TMDOCP_GENE.CO_EMPR  
  And T2.TI_ENTI = '" + @ISTI_AUXI_PROV + "'  
  And TMDOCP_GENE.CO_PROV = T2.CO_ENTI  
  And TMDOCP_GENE.CO_TIPO_DOCU  = T2.TI_DOCU_ENTI  
  And TMDOCP_GENE.NU_DOCU_PROV = T2.NU_DOCU_ENTI "   
  + @ISDE_WHER_CABA + "  
  And  T2.CO_EMPR = T4.CO_EMPR  
  And  T2.CO_CAJA = T4.CO_CAJA  
  And  T2.CO_EMPR = T7.CO_EMPR  
  And  T2.CO_CAJA = T7.CO_CAJA  
  And  T2.AA_CAJA = T7.AA_CAJA  
  And  T2.MM_CAJA = T7.MM_CAJA  
  And  T2.TI_MOVI = T7.TI_MOVI  
  And  T2.NU_COMP_CAJA = T7.NU_COMP_CAJA  
  And TMDOCP_GENE.CO_EMPR = T8.CO_EMPR ")  
  
  
 IF @ISTI_ORDE = '1'  
 SELECT  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,  
 T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,  
 T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI,   
 T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10)  
, T1.FE_EMIS, 103), CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), CONVERT(VARCHAR(10), T1.FE_OPER, 103),   
 T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',  
 '', '1', '1', '1', '1', T1.FE_OPER  
 FROM  #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3  
 WHERE T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 UNION ALL  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_MONE_OPER, '',   
  '', 0, 0, '', '',   
  0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI),   
  '', '', NULL, NULL, NULL, '',   
  Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '1', '1', '1', NULL  
 From  #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE_OPER  
 Union All  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER, '',   
  '', 0, 0, '', '',   
  0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, '',   
  '', '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE),   
  Max(T4.DE_MONE), '2', '2', '2', '1', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_MONE_OPER  
 Union All  
 Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER, '',   
  '', 0, 0, '', '',   
  0, T1.CO_MONE_OPER, MAX(T3.DE_NOMB), 0, '',   
  '', '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE),   
  Max(T4.DE_MONE), '2', '2', '2', '2', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_MONE_OPER  
 ORDER BY 30, 1, 29, 3, 27, 31, 4, 5  
  
  
  IF @ISTI_ORDE = '2'  
 SELECT  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,  
  T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,  
  T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI,   
  T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10), T1.FE_EMIS, 103),  
  CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), CONVERT(VARCHAR(10), T1.FE_OPER, 103),   
  T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',  
  '', '1', '1', '1', '1', T1.FE_OPER  
 FROM  #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3  
 WHERE T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 UNION ALL  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI), '',  
  '', NULL, NULL, CONVERT(VARCHAR(10), T1.FE_OPER, 103),  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '1', '1', '1', T1.FE_OPER  
 From  #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.FE_OPER, T1.CO_PROV, T1.CO_MONE_OPER  
 Union All  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, CONVERT(VARCHAR(10), T1.FE_OPER, 103),  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '1', '1', T1.FE_OPER  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.FE_OPER, T1.CO_MONE_OPER  
 Union All  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '2', '1', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_MONE_OPER  
 Union All  
 Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '2', '2', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_MONE_OPER  
 ORDER BY 30, 1, 29, 31, 28, 3, 27, 4, 5  
  
  IF @ISTI_ORDE = '3'  
 SELECT  T1.CO_EMPR, T1.CO_MONE, T1.CO_PROV, T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV,  
  T1.CO_TIPO_OPER, T1.IM_TOTA, T1.IM_PAGA, T1.CO_CABA, T1.NU_CNTA_BANC,  
  T1.IM_CONV_DOCU, T1.CO_MONE_OPER, T3.DE_NOMB, T1.FA_TIPO_CAMB, T2.NO_AUXI,   
  T1.TI_DOCU_CABA, T1.NU_DOCU_CABA, CONVERT(VARCHAR(10), T1.FE_EMIS, 103),  
  CONVERT(VARCHAR(10), T1.FE_VENC, 103 ), CONVERT(VARCHAR(10), T1.FE_OPER, 103),   
  T1.NU_COMP_CABA, T1.IM_MOVI, T1.IM_SALD_CONV, T1.IM_CONV, '',  
  '', '1', '1', '1', '1', T1.FE_OPER  
 FROM  #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3  
 WHERE T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 UNION ALL  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, T1.CO_TIPO_DOCU,  
  T1.NU_DOCU_PROV, '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, MAX(T2.NO_AUXI), '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '1', '2', '1', '1', NULL  
 From #TWPAGO_PROV T1, TMAUXI_EMPR T2, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T2.CO_EMPR  
 AND  T2.TI_AUXI_EMPR = @ISTI_AUXI_PROV  
 AND  T1.CO_PROV = T2.CO_AUXI_EMPR  
 AND  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_PROV,  T1.CO_TIPO_DOCU, T1.NU_DOCU_PROV, T1.CO_MONE_OPER  
 Union All  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, T1.CO_PROV, Max(T1.CO_TIPO_DOCU),  
  Max(T1.NU_DOCU_PROV), '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '1', '1', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_PROV, T1.CO_MONE_OPER  
 Union All  
 Select T1.CO_EMPR, T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '2', '1', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_EMPR, T1.CO_MONE_OPER  
 Union All  
 Select Max(T1.CO_EMPR), T1.CO_MONE_OPER, '', T1.CO_MONE_OPER,  
  '', '', 0, 0,  
  '', '', 0, T1.CO_MONE_OPER,  
  MAX(T3.DE_NOMB), 0, '', '',  
  '', NULL, NULL, NULL,  
  '', Sum(T1.IM_MOVI), 0, 0, Max(T4.SB_MONE), Max(T4.DE_MONE),  
  '2', '2', '2', '2', NULL  
 From  #TWPAGO_PROV T1, TMEMPR T3, TTMONE T4  
 Where  T1.CO_EMPR = T3.CO_EMPR  
 And  T1.CO_MONE_OPER = T4.CO_MONE  
 Group By T1.CO_MONE_OPER  
 ORDER BY 30, 1, 29, 3, 27, 4, 5 , 28  
  
RETURN                                  
/*------------------------- FIN ------------------------------ */


GO
